package modelosDeParcial;

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import junit.framework.Assert;

import org.junit.Test;

public class AlmacenTest {

	@Test
	public void obtenerSeccionesTest() {
		Almacen a = new Almacen();
		Producto arroz = new Producto("Arroz", 10);
		Producto fideos = new Producto("Fideos", 5);
		Producto ruleman = new Producto("Ruleman", 50);
		Producto tuerca = new Producto("Tuerca", 1);

		a.agregar(arroz, "Alimento");
		a.agregar(fideos, "Alimento");
		a.agregar(ruleman, "Mecanica");
		a.agregar(tuerca, "Mecanica");

		Set<String> secciones = new HashSet<String>();
		secciones.add("Alimento");
		secciones.add("Mecanica");

		Assert.assertEquals(secciones, a.getSecciones());
	}

	@Test
	public void obtenerProductosPorSeccionTest() {
		Almacen a = new Almacen();
		Producto arroz = new Producto("Arroz", 10);
		Producto fideos = new Producto("Fideos", 5);
		Producto ruleman = new Producto("Ruleman", 50);
		Producto tuerca = new Producto("Tuerca", 1);

		a.agregar(arroz, "Alimento");
		a.agregar(fideos, "Alimento");
		a.agregar(ruleman, "Mecanica");
		a.agregar(tuerca, "Mecanica");
		List<Producto> productosPorSeccion = new LinkedList<Producto>();
		productosPorSeccion.add(arroz);
		productosPorSeccion.add(fideos);

		Assert.assertEquals(productosPorSeccion,
				a.getProductosEnSeccion("Alimento"));
	}

	@Test
	public void obtenerTodosLosProductosTest() {
		Almacen a = new Almacen();
		Producto arroz = new Producto("Arroz", 10);
		Producto fideos = new Producto("Fideos", 5);
		Producto ruleman = new Producto("Ruleman", 50);
		Producto tuerca = new Producto("Tuerca", 1);

		a.agregar(arroz, "Alimento");
		a.agregar(fideos, "Alimento");
		a.agregar(ruleman, "Mecanica");
		a.agregar(tuerca, "Mecanica");

		List<Producto> todosLosProductos = new LinkedList<Producto>();
		todosLosProductos.add(arroz);
		todosLosProductos.add(fideos);
		todosLosProductos.add(ruleman);
		todosLosProductos.add(tuerca);

		Assert.assertEquals(todosLosProductos, a.getProductos());
	}

}
